        section .text
        global main
main:
        push rbp
        mov rbp, rsp
        sub rsp, 0x48
        
        mov rax, 0x80000004
        cpuid
        mov dword [rbp], 0xA
        mov dword [rbp - 0x4], edx
        mov dword [rbp - 0x8], ecx
        mov dword [rbp - 0xC], ebx
        mov dword [rbp - 0x10], eax

        mov rax, 0x80000003
        cpuid
        mov dword [rbp - 0x14], edx
        mov dword [rbp - 0x18], ecx
        mov dword [rbp - 0x1C], ebx
        mov dword [rbp - 0x20], eax

        mov rax, 0x80000002
        cpuid
        mov dword [rbp - 0x24], edx
        mov dword [rbp - 0x28], ecx
        mov dword [rbp - 0x2C], ebx
        mov dword [rbp - 0x30], eax

        mov rax, 0
        cpuid
        mov dword [rbp - 0x34], 0xA
        mov dword [rbp - 0x38], ecx
        mov dword [rbp - 0x3C], edx
        mov dword [rbp - 0x40], ebx

        mov rsi, rbp
        sub rsi, 0x40
        mov rdx, 0x48
        mov rdi, 1
        mov rax, 1
        syscall
        
        leave

        mov rax, 0x3C
        mov rdi, 0
        syscall
